package com.mycase.im.boot.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.mycase.im.boot.entity.database.ImChatGroup;
import com.mycase.im.boot.entity.database.ImChatGroupUser;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.List;

/**
 * @Author ZhuHJay
 * @Date 2021/9/2 17:49
 */
public interface ChatGroupUserService extends IService<ImChatGroupUser> {

    /**
     * 将被邀请的用户, 包括群主刷新到数据库中, 并发送通知信息
     * @param imChatGroup 群聊的信息
     * @param group 需要添加的用户id
     */
    void refreshUsersToGroup(ImChatGroup imChatGroup, ArrayList<String> group);

    /**
     * 根据用户id获取该用户添加的所有群聊
     * @param id 用户id
     * @return 绑定的群聊信息
     */
    List<ImChatGroupUser> getGroupListByUserId(String id);

    /**
     * 根据群聊的id获取该群聊所具有的所有用户, 包括用户信息
     * @param chatGroupId 群聊id
     * @return 绑定群聊的用户及其信息
     */
    List<ImChatGroupUser> getGroupUserListById(String chatGroupId);

    /**
     * 将邀请人添加到群聊中
     * @param inviteId 邀请人
     * @param imChatGroup 群聊信息
     * @param insertUsers 被邀请的用户
     */
    void inviteUsersToGroup(String inviteId, ImChatGroup imChatGroup, ArrayList<String> insertUsers);
}
